The present invention generally relates to concurrent programming, and more specifically, to white box concurrency testing for transaction processing in a concurrent computing environment.
In computer science, concurrency refers to the ability of different parts or units of a program, algorithm, or computer problem to be executed out-of-order or in partial order, without affecting a final outcome. Concurrency bugs often occur during the developing phase of software development. Concurrency bugs can cause serious functionality issues such as causing system and/or application runs to hang or crash. Concurrency bugs can be difficult to identify, reproduce, and correct via known technology. Development time, computational resources, and memory storage is affected if the detection of concurrency bugs is delayed to a later phase.
A root cause of concurrency bugs is multiple threads attempting to access a shared resource. Example shared resources can include but are not limited to data structures, common memory variables, locks, sockets, services, blocks of memory, database access, data chains, file accesses, and/or suitable shared resources.